object Demo08Func1 {


  def func1(): Unit = {
    println("在函数中定义函数")
  }

  /**
   *
   * def 关键字 表示声明一个函数
   * func2 方法名
   * str1:String,str2:String 两个参数
   * str1、str2参数名 String为参数类型 多个参数之间用逗号分隔
   * Int 返回值类型
   * {......} 方法体
   * 返回值通过return返回
   *
   */
  def func2(str1: String, str2: String): Int = {
    return str1.toInt + str2.toInt
  }

  /**
   * 函数的省略：
   * 1、return关键字可以省略，默认最后一行最为返回值
   * 2、如果代码只有一行，花括号可以省略
   * 3、返回值类型可以省略
   * 4、如果函数没有参数，则定义的括号可以省略
   */
  def func3(str: String): Int = {
    return str.toInt + 100
  }

  def func3_1(str: String): Int = {
    str.toInt + 100
  }

  def func3_2(str: String): Int = str.toInt + 100

  def func3_3(str: String) = str.toInt + 100

  def func4 = 100 + 100 // 这是一个函数 不是变量


  /**
   * 函数的定义
   * 函数可以定义在 类中、object中、方法中
   */
  def main(args: Array[String]): Unit = {
    func1()

    println(func2("100", "200"))

    println(func3("200"))

    println(func3_1("200"))
    println(func3_2("200"))
    println(func3_3("200"))
    println(func4)
  }

}
